package com.yuxin.jdbc;

//郑雨欣 200718
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class JDBCUtils {
    private static String driver = "com.mysql.cj.jdbc.Driver";
    private  static String url = "jdbc:mysql://localhost:3306/yuxin?useUnicode=true&characterEncoding=utf-8";
    // "jdbc:mysql://localhost:3306/kq?useUnicode=true&characterEncoding=utf-8";
    private  static String user = "root";
    private  static String password = "Zheng20030818";

    int row = 0;
    static Connection con = null;

    //定义一个公共静态方法getConnection,这个方法用于创建并返回一个数据库连接对象
    public static Connection getConnection() {
        //使用try-catch语句来捕获可能发生的异常
        try {

            //调用Class.forName()方法加载指定的JDBC驱动类,com.mysql.jdbc.Driver
            Class.forName(driver);
            //创建一个新的数据库连接。传入的参数分别是数据库URL、用户名和密码。这个方法会根据提供的参数建立到数据库的连接
            con = DriverManager.getConnection(url,user,password);

        }catch (Exception e){
            e.printStackTrace();
        }

        return  con;
    }

    //用于关闭ResultSet、Connection和PreparedStatement对象
    //首先判断传入的对象是否为null,如果不为null则分别调用它们的close()方法来关闭它们。
    // 最后，如果所有对象都成功关闭，则方法执行结束；否则，捕获异常并打印堆栈跟踪信息。
    public static void close(ResultSet rs, Connection con, PreparedStatement pstm){
        try{
            if (rs!=null){
                rs.close();
            }
            if (pstm!=null){
                pstm.close();
            }
            if (con!=null){
                con.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void close(Connection con, PreparedStatement pstm){
        try{
            if (pstm!=null){
                pstm.close();
            }

            if (con!=null){
                con.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

